ORG100H
.RADIX16D
PRGCIMEQU5B00h
PRHOSSZEQU-PRGCIM
CHARSEQU0;1-nelcharsvan
USREQU0ded4H
BEEPEQU1;1-nel03B5el
R10EQU1;1-nelRST10rutinokelnek
SCREENEQU1;1-nelSCRvan
KEYSCANEQU1;1-nel028Ehivasvan
IRUPTEQU1;1-nelEI
IM1EQU1;1-nelFRAMESno
SCR2EQU0;1-nelMFACESCRiskell
JPKEZD
IRQVEGJPIRQEND
IRQENDIFIM1=1
PUSHAF
PUSHHL
PUSHDE
PUSHBC
LDHL,(5C78)
INCHL
LD(5C78),HL
CALLASCII
POPBC
POPDE
POPHL
POPAF
ENDIF
EI
RET
IRQLD(SPM+1),SP
LDSP,3C00
PUSHAF
IDOZLDA,4
DECA
LD(IDOZ+1),A
JRNZ,NKONV
LDA,4
LD(IDOZ+1),A
CALLKONV
NKONVLDA,30
OUT(0B4),A
POPAF
SPMLDSP,0
JPIRQVEG
IRQJUMPEQUIRQVEG+1
KONVPUSHHL
PUSHDE
PUSHBC
PUSHIX
LDA,0FCH
OUT(0B3),A
LDH,0F0H
LDIX,5800
LDBC,300
LDDE,0E000
KONVCLDL,(IX)
LDI
INCIX
JPPEKONVC
LDA,0FBH
OUT(0B3),A
POPIX
POPBC
POPDE
POPHL
RET
UBIEX(SP),HL
LD(PAR+1),HL
INCHL
EX(SP),HL
PUSHAF
UBIK1LDA,08H
DECA
JRNZUBIK2
CALLKONV
LDA,08H
UBIK2LD(UBIK1+1),A
PARLDA,(0)
CP1FH
JRNZ,UBI1
KEMPOPAF
PUSHHL
PUSHBC
LDHL,0
LDBC,0B5
KEMPCOUT(C),B
INA,(0B6)
RRA
CCF
RLL
LDA,5
ADDA,B
OUT(C),A
INA,(0B6)
RRA
CCF
RLH
INCB
LDA,B
CP5
JRNZKEMPC
LDA,H
ORL
POPBC
POPHL
RET
UBI1CP78
JRNZ,UBI4
UBI2LDA,C
CP01FH
JRZ,KEM
POPAF
UBI3PUSHDE
CALLUBILLC
LDA,D
POPDE
RET
UBI4CP0FEH
JRNZ,INVALID
POPAF
PUSHBC
LDB,A
CALLUBI3
POPBC
RET
INVALIDPOPAF
LDA,-1
RET
UBILLCPUSHAF
lda,0ffh
ld(ered+1),a
lda,b
pushBC
pushhl
pushde
exaf,af'
pushaf
exaf,af'
ldb,8
ldde,0ah
ldhl,billtab
bill1rlca
jrc,bill3
exaf,af'
PUSHHL
ldc,0fh
bill2lda,(hl)
inchl
out(0b5),a
ina,(0b5)
and(hl)
cp(hl)
ccf
inchl
rlc
jrnc,bill2
lda,(ered+1)
andc
ld(ered+1),a
POPHL
exaf,af'
bill3addhl,de
djnzbill1
exaf,af'
popaf
exaf,af'
popde
pophl
popbc
EREDLDD,0
LDA,B
CP0EFH
JRNZ,BILLVEG
PUSHHL
PUSHBC
LDHL,SINCL2T
LDC,0FH
CURS2LDA,(HL)
INCHL
OUT(0B5),A
INA,(0B5)
AND(HL)
CP(HL)
CCF
RLC
INCHL
JRNC,CURS2
LDA,D
ANDC
LDD,A
POPBC
POPHL
BILLVEGPOPAF
ret
SINCL2TDB7,20,7,4,7,2,7,8,8,40
billtabdb0,4,0,1,8,1,8,20,8,40
db1,1,6,1,6,4,6,10,7,40
db2,4,2,1,9,1,9,4,9,10
db3,4,3,1,5,1,5,4,5,10;6,7,8,9,0
db3,10,3,8,3,20,3,40,3,2;5,4,3,2,1
db2,10,2,8,2,20,2,40,2,2
db1,4,1,10,1,8,1,20,1,40
db0,10,0,8,0,20,0,40,0,80
.RADIX10D
LINEdb255,14h,15,2fh,0,0,0,0
SZINEKDEFB0,4,1,5,90H,6,3,7

KEZDLDHL,KEZDCIM
LDDE,3000H
LDBC,VEGE1-KEZDET+1
LDIR
JP3000H
KEZDCIMEQU$
.PHASE3000H
KEZDETLDSP,3D00H
LDBC,11CH
LDD,38H
EXOS16
LDC,0FAH
EXOS25
LDC,0FBH
EXOS25
LDC,0FCH
EXOS25
LDC,0FDH
EXOS25
LDA,0FDH
OUT(0B1H),A
LDA,0FAH
OUT(0B2H),A
LDA,0FBH
OUT(0B3H),A
CALLLPT
CALLATTRTAB
IFR10=1
CALLR10INI
ENDIF
IFSCREEN=1
LDDE,SCR
LDHL,4000H
LDBC,1B00H
CALLTOLT
CALLKONV
ENDIF
IFCHARS=1
LDDE,CHAR
LDHL,3D00H
LDBC,300H
CALLTOLT
ENDIF
LDDE,PRG
LDHL,PRGCIM
LDBC,PRHOSSZ
CALLTOLT
IFSCR2=1
LDDE,MFACE
LDHL,4000H
LDBC,1B00H
CALLTOLT
CALLKONV
LDB,80H
SZUNETHALT
DJNZSZUNET
ENDIF
DI
XORA
OUT(81H),A
LDA,30H
OUT(0B4H),A
LDA,18H
OUT(0A8H),A
OUT(0ACH),A
LDA,0C3H
LDHL,UBI
LD(20H),A
LD(21H),HL
LDHL,FEPORT
LD(8),A
LD(9),HL
LDHL,IRQ
LD(38H),A
LD(39H),HL
IFBEEP=1
LDHL,BEEPER
LDDE,03B5H
LDBC,BEEPVEG-BEEPER+1
LDIR
ENDIF
IFKEYSCAN=1
LDHL,KEYSC1
LDDE,028EH
LDBC,KEYSCV-KEYSC1
LDIR
ENDIF
IFIRUPT=1
EI
ENDIF
JPUSR
ASCIILDHL,ASCTAB
LDBC,0AB5H
ASCII1LDD,1
DECB
ASCII2OUT(C),B
INA,(C)
ANDD
LDA,(HL)
JRZ,ASCII3
INCHL
RLCD
JRNC,ASCII2
INCB
DJNZASCII1
ASCII3LD(5C08H),A
RET
ASCTABDB"I",-1
DEFM"O@P["
DB-1,-1,"M",-1
DEFB",","/",".",0CH,20H,-1
DB0AH,-1,-1,-1,-1,-1,0DH,-1
DB"J",-1
DEFM"K;L:]"
DB-1,"8",-1
DEFM"9-0^"
DEFB-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
DEFM"7164532"
DEFB-1
DEFM"UQYRTEW"
DEFB-1,"H",-1
DEFM"GDFSA"
DEFB-1
DEFM"N\BVCXZ"
DEFB0EH,-1
FEPORTPUSHHL
PUSHAF
LDHL,SZINEK
AND7
ADDA,L
LDL,A
ADCA,H
SUBL
LDH,A
LDA,(HL)
OUT(81H),A
POPAF
PUSHAF
AND10H
JRZ,FEP1
LDA,18H
FEP1OUT(0A7H),A
POPAF
POPHL
RET
IFR10=1
RST10DEFB5
DEFM"RST10"
ENDIF
IFCHARS=1
CHARDEFB5
DEFM"CHARS"
ENDIF
IFSCREEN=1
SCRDEFB3
DEFM"SCR"
ENDIF
PRGDEFB3
DEFM"PRG"
IFSCR2=1
MFACEDEFB5
DEFM"MFACE"
ENDIF
.RADIX10D
syncdb0f5h,2,0,0,0,0,0,0
db0,0,0,0,0,0,0,0
db247,8,11,73h,0b8h,0feh
db0e9h,1,0,216,216,0,0,0,0,0
db217,12h,63,0,0,0,0,0
db0,0,0,0,0,0,0,0
db253,16,63,0,0,0,0,0,
db0,0,0,0,0,0,0,0
db252,16,6,63,0,0,0,0
db0,0,0,0,0,0,0,0
db255,90h,63,32,0,0,0,0
db0,0,0,0,0,0,0,0
db252,12h,6,63,0,0,0,0
db0,0,0,0,0,0,0,0
db207,13h,63,0,0,0,0,0
db0,0,0,0,0,0,0,0
HOSSZEQU$-SYNC
LPTLDA,0FCH
OUT(0B1H),A
LDA,192D
ldde,4000h
exx
ldde,4000h
ldhl,4004h
ldbc,13
lpt1exaf,af'
exx
ldhl,line
ldbc,16
ldir
exx
ld(hl),e
inchl
lda,d
rra
rra
rra
and3
or20H
ld(hl),a
inchl
ld(hl),e
inchl
ld(hl),d
addhl,bc
incd
lda,d
and7
jrnz,lpt2
lda,e
adda,32
lde,a
ccf
sbca,a
and0f8h
adda,d
ldd,a
lpt2exaf,af'
deca
jrnz,lpt1
exx
ldhl,sync
ldbc,hossz
ldir
XORA
OUT(82H),A
LDA,192
OUT(83H),A
LDA,0FDH
OUT(0B1H),A
RET
ATTRTABLDA,0FCH
OUT(0B1H),A
ldhl,7000H
ldb,-1
konc1lda,l
rla
and0f0h
ldc,a
lda,l
and7
orc
bit6,l
jrz,kon3
rra
jrnc,kon1
set2,a
kon1bit3,a
jrnz,kon2
res6,a
kon2OR88H
LDC,A
AND7
JRNZ,KON21
RES3,C
KON21LDA,C
AND70H
JRNZ,KON22
RES7,C
KON22LDA,C
kon3ld(hl),a
inchl
djnzkonc1
LDA,0FDH
OUT(0B1H),A
RET
TOLTPUSHBC
PUSHHL
LDA,1
EXOS1
POPDE
POPBC
LDA,1
EXOS6
LDA,1
EXOS3
EI
LDB,80H
VARASHALT
DJNZVARAS
RET
IFR10=1
R10INILDDE,RST10
LDHL,6000h
LDBC,646H;MASLESZ
CALLTOLT
LDHL,6000h
LDDE,9F4H;9F4-RE
LDBC,4B8H
LDIR
LDDE,15AFH;15AF-RE
LDC,0A3H
LDIR
LDDE,16DBH
LDC,0AH
LDIR
LDDE,203CH
LDC,9
LDIR
LDDE,2211H;2211-RE
LDC,0DAH
LDIR
ldhl,3c00h
LD(5C36H),HL;CHARS
LDIY,5C3AH
LDHL,5CB6H
LD(5C4FH),HL;CHANS
LDDE,15AFH
LDC,15H
EXDE,HL
LDIR
LD(23639D),DE;DATADD
LDA,38H
LD(5C8DH),A;ATTR-P
LD(5C8FH),A;ATTR-T
LD(5C48H),A;BORDCR
LDHL,15C6H;5C10-RE
LDDE,5C10H
LDC,0EH
LDIR
LDA,2
LD(5C6BH),A;DF-SZ
ldhl,-0a8h
ld(5c7bh),hl;UDG
lda,0c3h
ldhl,15f2h
ld(10h),a
ld(11h),hl
CALL0D6BH
CALLKONV
RET
ENDIF
IFBEEP=1
beeperdi
lda,l
srll
srll
cpl
and3
ldc,a
ldb,0
ldix,03B5H+BAZIS-BEEPER
addix,bc
xora
BAZISnop
dw0
incb
incc
beep1decc
jrnz,beep1
ldc,3fh
decb
jpnz,beep1
xor18h
out(0a7h),a
ldb,h
ldc,a
bit4,a
jrnz,beep2
lda,d
ore
jrz,beend
lda,c
ldc,l
decde
jp(ix)
beep2ldc,l
incc
jp(ix)
beendei
ret
ENDIF
BEEPVEGEQU$
IFKEYSCAN=1
KEYSC1LDL,2FH
LDDE,-1
LDBC,0FEFEH
KEY_LINERST20H
DEFB78H
CPL
AND1FH
JRZ,KEY_DONE
LDH,A
LDA,L
K_3KEYSINCD
RETNZ
KEY_BITSSUB8
SRLH
JRNC,KEY_BITS
LDD,E
LDE,A
JRNZ,K_3KEYS
KEY_DONEDECL
RLCB
JRC,KEY_LINE
LDA,D
INCA
RETZ
CP28H
RETZ
CP19H
RETZ
LDA,E
LDE,D
LDD,A
CP18
RET
JPASCII
KEYSCVEQU$
ENDIF
VEGE1EQU$
.DEPHASE
VEGE

